it sounds like we should not use the same method for those two things.
Alternatively this could the build method could implement the right behavior and return P.