Template method pattern. Complex calculator with block example