Added the user ability to define an initialize() method

Since you can't override the constructor of a Task derived class, I think can be useful let the user to implement an initialize() method, to init all the stuff every action, implemented in the task itself, needs.