perfecting scan methods