bunch more server side model stuff