Semi-working version.