Added some explanation for implemented functions