refactoring to user render