revamped interface; works with example, but tests need to be updated