updating metric class
introduced strategy pattern. further refactoring. added repetitious movement