Probably requires adding heuristic of some sort to choose best type
Probably requires adding heuristic of some sort to choose best type