first implementation of VIewComponent