Work on more clean implementation
try to resolve merge conflict