subscribes before calling
rebuild