added some files and quite a lot of changes.