finished refactoring selectableobject with abstract class