some changes for interfaces and models