add overirde abstract method support