Before you go any farther, a Code Smell simply implies that there *might* be something wrong with your code and that you *definitely* need to evaluate your code. Downcasting , in my opinion, is a code smell. Specifically, I think code like this below is smelly: public void Filter( IFilter filter, object...