1) made sub-field tainting explicit
2) fixed various issues
3) added more test cases