whole rewrite with Translators as immutable structures
merged rewrite with master
bump version number