Implemented P-Type
everything works