abstraction tidy-up