Almost fixed the arguments and type closure