added control
adjusted the size of buffer
added customized checker