step2 partialy implemented