to program operation.
need to learn more about them first need to do clean up and corner case handling