using blocking functions for memory boundaries checking