Put it all together....