type hinting cleanup
code clean up; implement missing methods
User test cases