refactored json serialization/deserialization to use jackson2