Big dumb refactor

This is the refactor part of the persistence work that i was working on.
apparently some of the implicit behavior was already on develop. we might have to go farther back