a few things changed since the example was made