movement function overwrite attempt. still buggy.