deduce should be implemented