Sure, but this is starting to look very similar to our original implementation with the biggest difference being the error throwing.