@jarric: My solution to