frontend part for #65
close #65

backend part for #65