separate out functionality to more methods