adding stand-alone version