"New" needs a type-specific name
split templates out into separate files for sanity; separate package someday?
implement Ring container with tests