cls and example of abstract