abstract ptr to struct vs struct check