this is a really good thread, +rep