Introduced the PSource protocol and use int rather than the Source type directly. Created Java Interfaces for all of the Protocols that are used and mapped them to the appropriate Protocol. I did this because the Protocols method signatures didn't match well to Java conventions.