protects data and data=, closes #19