change: some of redundant code has changed.