refactored new opts hash feature