Towards Flexible Teamwork