partial
upto part 5 partial