Has basic layout for the process. Need to implement all the methods now.