actally compiles and works
almost there