preparing or refactor