proper documentation added