improved construction realizing all types