Activerecord

Completely redo data layer to not be awful