initialize is synchronous