Now supports many schemes!