a couple of implementation and enhancement