Initial public version. Copied from my private repository.