add new abstractions