add autoreset function