Cecil java source code as provided by David