Added some better documentation