better desine ^_^