cleaned up scan methods