Propose a structure for the Task class

This PR proposes a structure for the Task class.
Proposing builder pattern to avoid telescoping constructor problem which is likely to happen.

Issue  #35
are any of these files meant to be internal header files?