partial copy from scanner
build_method sub-add