data model and abstractions
more abstractions