make compliant with swappable user model