adding tests and base methods