refactored Component class into more readable files
store pNode property on fragments, not their children - easier to manipulate