basic behavior and communication with controller