Added a callback interface, and a callback task
Callback tasks can be used to execute a method ONLY after a thread finishes its execution