update tests, gems, and add Guard
expand javascript