ocd
first go at proper package/module management instead of having everything in one file