factoring out functionality, better method names