all afternoon on one function.  fml