more tests and method implementations