refactored updaters and added tests