Refactor self init
Refactor init methods