reordering functions and documented class