refactoring, adding french, and getting ready for npm