inheritance and composite implementations and tests
moved magic calls to Hinter class to reduce work required by target programmer
phpdocs and some easing
code cleanup