some suggestions from hlint