it compile, follow the pattern