This can follow the algorithm described here: https://cs186berkeley.net/resources/static/notes/n04-B+Trees.pdf