Added test for Last<> and got it working, also swapped all instances of typedef to the newer c++11 using syntax