updated with strict wrapper and added _ for private