noeska, why you implemented it using blocks, any special reason?