clean up
add donation function