basic function have been implemented.