Copyright (c) 2015 Kyle E. Mitchell & other authors listed in AUTHORS