wrote test that accually tests something. added a few interfaces and some cleanup