use less pointers