add yaml serialization