updated with how code is organized in a non-blocking way. This is very important