Modify interface and implementations