Reorganized some core methods