PA1 Final Version