ok #12
ok issue #13
ok #15 #17
ok #23
fixed #24
fixed #26
ok #27
fixed #28
fixed #22
fixed #30
fixed #32
fixed #34
fixed #35