Первую часть делает @Intruder, вторую уже я.