factoring out config parser and web api