it is troublesome if we have to fix it in three places in case of a bug, it also reduce code duplication.