pull request from accidental fork

please add all this stuff