functional interfaces added