fix bug, add few new things