avoid abusing pointers