updated core.listen