pushed error tracking into a trait and added a better base model, need to start cleanup up models & collections to make them use it