shouldn't this take an implicit Ring?