Have the program compiling, having some errors with the ring part of the appication.
Found out the reason I was having issues was the front was not calculating correctly. To do this I temporarily created a local variable to store the value, although I will probably change this in the future to prevent having to create an object of whatever type is passed.
Already found an alternative, just storing the front value before the change. Makes it much easier to use.