synchronous init