document all the methods