third draft of shared abstractions
shared abstractions live