Added a crapton more functions