Used decorators and new charge class to clean up order logic. Now need greater consistency and tests