Polymorphic rehaul, going to rebuild all models and then incorporate them
branch test