document all over this class please