done with the functional part
done with the functional part