tested
Forward and Reverse