restructure of interface to remove from library stuff