Still work in progress but starts to work fine.