dynamic generate methods.