some types are now private
starting logic encoding
creating encoder