added smart movement