Refactor tip_add()