Wroks fine... even is code seems not the best ever