review and fix