refactoring due to ez_new() etc