UPD: подогнал под PSD + немного продокументировал и поправил комментарии