change from signal/slot to mutex lock