use stdbool and msg cleanup