LHE class is no longer abstract; using composition of behaviors to define the type of LHE
renaming some classes and moving to diff namespace