Redesigned functions