Implemented "findFirstOf", "findLastOf", and "findAll" methods, all though I'm not so sure of the design on findAll