added traits overload for non-enum types