make use of valid(), so maybeMakeControl is not needed