angular abstraction