re-organize the code and folders