the last condition is wrong: `found` is a Class[_], hence the expression is always true. what you want is `!found.isPrimitive` (or some such)