struct implementation of translator untested but finished
merge