Refactored Init