fixed #11
fixed #12
fixed #13
fixed #14
fixed #30
fixed #31
fixed #32
fixed #33
fixed #35
fixed #36
fixed #37
fixed #39
fixed #37
fixed #50
fixed #51
fixed #52
fixed #79
fixed #82
fixed #84
fixed #85