I want to think about this naming for a bit; should this be a module instead of a class?