Reorganized project to be more general.