init refactor to integrate with new interface