restructure to make installable