Changed to create parent path if missing