Fucked up some stuff, but I need to re-think it before writing further