https://medium.com/@chiachong.14/advanced-streamlit-session-state-and-callbacks-for-data-labelling-tool-1e4d9ad32a3f