created abstract template