functionalities worked, but behaviors sort of weird