use LinkedList instead of ArrayList
added date support
test for ensuring order of results