more conveniency function as well as interfaces added