which is neat, because it allows for a non-blocking call