better error handling
tests for all methods ready to go and in working ttt format