Week 6 catchup 1
Updated with business layer, factories, error mgmt