some version that works (not entirely at least there is a progress)