use state macro