Implemented full functionality. Now testing