this resolves #6 and closes #7, also fixes #8 and close #9. Additionally close #10 and fix #11. Also, close #12 and fix #13. That is also close #14