use Type::Tiny + style cleanups