all methods complete and tested