add decorator pattern
big refactor to use concerns for models to allow for easier overrides in the main application