Optimized with helper methods