Implementation complete. Need to clean up print calls.