Simplify the core function