refactored packages so they make some kind of sense