A lot of refactoring, tests; Adds Post model for Room :)