adapt to mvc style