using synchronous callbacks now