init procedure