impl auto mode