using abstract panel