Re-factoring to allow the possibility of micro_services