Initial cut of userforms refactor, uses extensions