Frontend

I want to bring this in now because I don't want our data models to diverge too much. Please take a look at how I've defined User. Otherwise, I don't think you'd have reason to oppose the changes.