trying to add documentation. things may be broken