- accepts json config
- modified direct as the test case for it