implemented [UNTESTED] sw hazards