documentation
wrote the specs