Updated structure and add documentation