some progress with refactor
refactor of class names
simplify and complete example