more on abstraction