Initial code commit, this code still need to be polished and refactored. Collision detection is not done yet