use non-legacy method