add compiler, self test and grand child example