some suggestions from kibit