Fixes #41
Turned PrimitiveDataEditor into an interface
Merge branch 'issue-24'