fixes #31 - handling primitive and boxed single byte and char