and/or implementation

test plan: make test; write more tests