added more tests and functionality, also frank