add descriptions and type for the parameter and return value in each method, and fix some bugs found by that