Committing work from a while ago. Also, I need to a restructure to get this to work. Base it on iOS restructure