added tests & a few methods