merge initial implementations related to pp1 - knowledge iq
This will create a new commit in order to revert the existing changes.