added ability to use custom view