complete refactor to auto init