Add smart deconstruct and other utility classes