Getting the types to compile
Clean-up
Updated