Completed with functionalities and commenting