implemented doughnut throw functionality

Should have been in it's own branch, but whatever