template implemented
started to implement