Committing initial version combining parts of two different older versions of the module.