adjust msg work to final shared function instead of finding all seperate locations