Finished Part II: Need To Test