do we need different names id vs val?