Thank you for the detailed explanation. I was initially concerned that using a library may provide abstractions that may make me miss out on the fundamentals but now I've seen that it's what will likely be recommended for production applications anyway.