Refactor to begin playing with the whole composition thing