added upper and lower bound function, high resolution timing, started working on preconditioner of WL