added weight and option-ness