Reorganized the files and added an install feature