refact for new project