options framework