> you're probably not going to learn a ton with clay pot #10,001

Why not just use a library at that point? We already have support for abstractions in programming.