factorized `[add|edit|remove]Contact()` methods