wrap builtin Go types to make them optional and interfacy