factored out the distinct components of the partial functions