Let's wrap the whole thing in a class...