significant re-write of NIPS; Rename