P3

pretty much done.