add some indexes, change user to be polymorphic