Adding behavioral / strategy impl and tests