I still thing this is really weird to have async callbacks for a sync function