added docs, negative argument handling for slice()