added more documentations