Updated, cleaned up.