initial codes
tests