look at programming abstractions 5331832