refactored and added tests
upgraded plugins
refactored
added more tests
refactored