This is all mock code, if there is a need to clean this up, please let me know