restructure and document