documentation for the methods