init function and better parent option handling
wait for init promises