refactor: xml construction per model