new haze implementation, config parsing is separated from execution