First draft. Most likely not compiling