note that magic-call setters will not work. closes #48