move scanner into fflib