Wearily hacked together byDave Birss