Starting to defining the Algorithm class as suggested in #22