Alternate implementation added.