implementing sange a little differently