modified design to accept generics, made progress on iterative deepning implementatoin
modified design to accept generics, made progress on iterative deepening solution