added files, updated version, refactored code.