Initial work flow and some psuedo code