only create dir if needed