read, unsubscribe added, code improved