refactoring due to ez_new etc