! Merge code with justin fixed bug