Copyright (c) 2009-2010 Marcus Geelnard