one last commit before starting from scratch to get these types right.