add option parsing
allow loading from yaml config file