#1 more refactoting