distinguish fmt also by type