did some cleanup and split files to other files