not extends but implement