implementing template
changed interfaces that create template instance
implemented template#read