too long to read...