split up 80+ code lines