Implement choose optimal forward