Implemented most of the things. Just need to finish up the link stuff.