improve flatten algorithm using a default parameter