cleaning up interface
interface changes: still have to do something about Entity/EntityInfo (probably turn Entity into a smart pointer)