one function to handle them all is sometimes not the greatest in terms of future readability