lots of nifty stuff by user 2