configuration-agnostic design