template inheritence added