refactored to use active support concern
Spec for serializing is now more robust