implements Interface