refactor footprint class.