creating new controls on the fly