refactored heavily the till