Add renderer protocol and some types