port to Moose+Type::Tiny