added ID functionality
added some more tests, started writing a rough front-end