init refactored