use lenses to define state-setting functions
minor renamings
disabled warning on shadowing function names
host languages moved to own submodule