refactored initialization