A user is a base user and an admin is also a base user. We've all seen this scenario once or twice during our careers. And then another programmer comes around and decides to make the base user extend of something else and soon the structure of the application becomes more clouded. There has to be a simpler solution to not duplicate code and share behaviour over all of the application… Let's talk about this with lots of Star Wars references.