split out install phase