add documentation, structure