#1 updated with permission