going to seperate helper functions.