hopefully fixes #2 #3 and #4