Basic skeleton. TODO: make it compile/work