passing Engine& instead of Engine* to tasks, fixed SampleTask(passing Profiler&)