cleaning up the interface
added a test