rename the parameters
implement take() and drop() methods for List
implements head, last, tail, init methods