Data marking2

First cut at data marking, including tests.

Fix #53