support declarative view