gonna try and be more memory efficient