recursive rendering working