ngm abstraction