changed structure and file names quite a bit