changed derived Datafield classes to an template with specialization