Abstract some thangs