minor updates
minor commits
Major refactoring