Matthew Allum <mallum@o-hand.com>
Ross Burton <ross@o-hand.com>
Based on idea by Eero Tamminen