documented all methods