now fully using custom view