call setfield! instead of setfield. fixes #23