fixed #11
fixed #12
fixed #13
fixed #14