Properly implemented the interfaces based on TE examples.