This should just be a class.