fix function bug