Update: I am thinking to search for the math course for my son when he turns 4, but finally I start now as he start intentionally do the math wrong (e.g. he writes 5+4=8 and then laugh), I don want to stop him from doing funny stuff but also don want to encourage him to keep doing sth wrong and make fun (i will be in trouble in the future when asking him to do his homework) so I have finally tried Khan, I like it very much as it allow you to choose diff topic to work on and it is free! However, it is not that friendly to use in tablet, the font is too small for my son. I stop using it and sure will come back again when my son get older.
So I have bought the EPGY maths course as well. Agree that it is not that flexible to choose what to work on and quite boring. My son still likes to use it (as his passion is numbers!) and I start him from half of grade 1 (as i can only set for every 0.5) and now he finished the first grade content and just start grade 2. It is really structural that's what I really like, but the inflexibility really make it hard to use to. My son is a bit boring as the additions and subtraction is too easy for him, however, as the course always introduce sth new in between, and sth challenging, so I don want him to skip the entire grade, he has to go on and do sth that he know very well already to move on. I hope he is patient enough to finish the 2nd grade in this subscription period, most likely i will not continuous, and we will do some hand on math activities at home instead (to strengthen what he learnt in this course.). After he learnt the money system, we do pretend play with buying and selling with real coins all day long and it is fun ^^ (it is the only pretend play game he likes to play with)
Thank you so much for all of your advice ^^