Added where crabbed this stuff from