basic function completed.