improve users functions