final changes, still can't suppress darn warning messages ):