added testing, config options, demo app for additional testing, initial API, additional modeling