For question 1, your initRand function may need to return "self". For question 2, reverse can be a function (which is probably the easiest thing) or it can modify its argument list. For question 3, you don't really need to do anything to make Interval not support add:, since it's only defined as #subClassResponsibility already.