update method created
minor changes
restored unshift support
solved major issues