refactor config interfaces