more operation added + iterator updated to not use previous