Significant api changes, better foundation for building more commands