caller supply custom view