refactoring the tracking observers

we now rely on validations to prevent creating records without a user.
We don't raise exceptions anymore on other validation failures - but i think that's fine