todo: make the codecbson deriver macro work right