Why in the world re-implement a core function?!?!?!!ONEONE