initial use strict pass, untested