added more tests and size() to interface