more moving around and abstraction