refactor init for readability