Working on new implementation (Still bugged)