use named parameters to prevent confusion
added IBinarySensor
updated tests for IBinarySensor