Simple gradient descent algorithm
Added logger support
Added logger support (with NullLogger)