implemented interfaces into classes