One of the challenges when working on any software system is working out the database design and structure of the code.
My son is making a car paperwork tracking database website allowing tracking of service history and so on. Not a bad idea.
I made the mistake of going a bit "meta" on him and saying "car" is "vehicle".
He now has "car" or "bike" as a setting and is working on changing scripts and database tables to change to vehicle and not "car".
At this stage it its a couple of tables and half a dozen cgi files, but even now is a lot of hassle. It really does stress the need to "step back" in anything you do and consider how meta it can get,
Hopefully he can launch this soon - it looks cool, and "Bikey McBikeface" already has a place as vehicle type "bicycle"...