restructured the WHOLE PROJECT