only need to use overridden metamethods