switch to using Type::Tiny