everything works. needs modelstests and cleanup.
wip
wip
wip