всякого тут наделал, возьми в основную ветку, тебе же нужно :)