Updated and reorganized for github