added two new interfaces
some changes