fixed #8 #10 #11 #12 #13 #14