Fix bugs, add doc