First implementation of the task