redefined class strucutre and interfaces