@boon: A lot of this