add stand-alone version