a myriad of changes: change mechanism for state etc. (wip); protocol
for run-monad; type hints