lots of analysis stuff