Copyright (c) 2012-2014 Isaac Z. Schlueter Copyright (c) 2012-2014 Federico Romero Copyright (c) 2014-2015 Douglas Christopher Wilson