added ^ function