any specific reason these functions are inline?