finishes implementation