I think you split into too many small templates here. Are they really necessary?