avoiding the blocking calls