Make construct function take Option[K] instead of K