Updated code example for clarity and added another design goal to the abstract