bug fix - don't return self, actually use the type