fix bugs + add documentation