working example of implementing an abstract method in ruby