Work in progress part 2.