some changes to interface