refactor major code before proceeding
refactor major code before proceeding