Started redoing the core files to generalize!