Updating: re-organizing a bit.