@guiltyparties: Much of this