cleaned up implementation of user controls