Tried to created a recursive class definition, but have not totally succeded yet