Modified to avoid using ToString()