incorrectly cached #getType() results at factory level instead of instance level