initial revision
added ref