rough abstraction is following