fix bugs, add parameters