added more tests
added selectable behavior
added a bunch of tests