adding more informative decoder error, making keys programmatically assignable