Made PrivatePub return a new object, like a builder method, instead of using new keyword.

Added/moved around some tests.