adding Interface and Trait