fixed issue #4 #5 #6