using standard c