Added all codes as on submission