Knight implementation 2

Did some refactoring, some remodeling, and testing. Need to check with Travis to see if it builds.