added interfaces that are needed