add defer by other method