add generic admin model, switch contact to use it