a few bug is reqaired