added reference implementation