Reorganized and working on a better design