addded optional float option