This is kinda long the lines of what should a private type returned publicly be able to do? Right now this is allowing invocations of public methods on private types, but disallows static functions on private types.