Explain typical usage. Make all methods protected safe constructor, destructor and body.
This way we force user to call body() and not run() in main. Carefully document abstract methods that has to be implemented
in derived class.