lots of changes and rewrites. SEE EMAIL