I have seen ByVal used so many times, but what is it and whats the purpose of it?