Towards Improving the Effectiveness of Automated Program Repair