It's always the same: I want to implement a feature (getting something from a database with a special type) and end up doing something completely different instead (refactoring my validation library to better represent validity timeframes and making validation function definitions a lot more straightforward)