Implemented Most Functionality