added more methods, some tests
added equals