more abstraction of config