basic functionality tested, working on higher level interface