Gluing some more fundamentals together.

Some more templates, some more methods, and hey even some tests! It's a
crazy world we live in.