decoupled tasks and added documentation