I'm debating if we need the wrap method at all. In some cases (like object construction) wrap is called and will possibly leave the object untouched (Integer, BigDecimal, String, etc) or will wrap it ...