change interface for satisfy