Copyright (c) 2012 LearnBoost <tj@learnboost.com&gt