Rewrite most of the Remaining Functions