Work done: commented
To do: implement video