modify source to pass compile