don't use the synchronous version of exists here - it will block!