Finite factorization domains