With shared abstractions