Fixes #6 , #5 , #4