new version, changed return type