move init to a separate file