Add decode method to trait and add skeleton implementations