use nil by default