implementing and documenting all functionality