Implement cast and drop
Extend drop object, add description. Change some names.
Rename Source to Shape, extend it, rename some vars