explanation and todo