force impls to handle encoding themselves