initial take-on, a lot of work still to do (not even compiling...)