started using template inheritence