fixes #5 #6 #7 #8 #9