towards lazy update of needle matrix
towards floating point version of needle