finishing implementation