Rough cut of completed source
Moving config to be external