Refactor and update.

Signed-off-by: Peter Atashian <retep998@gmail.com>