#4 fix
fixed #1 #2 #3