q4 added, q2 optimized