Part A Implemented