refact initialize :: ..with callback