Using yield self instead of instance_eval,rate assigned in intialize so that CI n SI can access it directly,attr_Accessor added