Fix bugs, add documentation