Contact structures

Core part for contact redesign

A bit of cleanup on core methods to be more consistent