Add a 2x scaler, and refactor the scaler to be macro-based