custom model view implementation