Add cookbook support

An annoying nit is that due to the class level attributes attribute, we can not use the attributes attribute for cookbook attributes.