some enhancement, continue dev