Lifecycle refactored