basicallly finish all functions, for demo