Added reentrant/recursive locking and time.Time.String()'s formatting