revise sender into lib