User.pm optimization