Add remove function
a little bit annoying when you need to maintaint the head pointer