Laying the foundation for the cust-gen

Working on:
Feature #89
Feature #84
Feature #58
Featyre #54