add mrjeans changes and separate files