some changes to the interface