Made some more progress. Code not compilable at this point :)