Chimple rewritten from scratch.