added many function imps