apply the best practices into folder structure and code format