Initial commit, CLI version, no interface yet.