add refactor to difuse logic