Initial upload of source files, this is partly recoverd from a jar. Some original sources where corrupt due hdd failure.