init with basic function