implemented auto