full abstraction