we should probably add an Assert.notNull() here just in case