Changed some protocol node stuff

Made properties private
Added getters for private properties
Added return types in docu blocks
Added data getter
Big overhaul

Changed calls to protocol node properties into getter methods
Added more @param, @throws and @return in docu blocks
Cleaned up code
Fixed pretty much all warnings
Wasted my whole afternoon on this