more tweaks and some core restructuring, mvp for scala and go support