Added recursive trait resolution