Fixes #6 , Fixes #5 , Fixes #4