use _ instead of camel case
change function order for readability