use data.now to make timer more accurate than counting frames