better for arc later and fix for a memory leak
nicer