this works, pending documentation
Potter: Final implementation