Creates pools if necessary