refactor for orgnization