migrated base functionality from interface to new class. Working on hooking it up correctly