refactored IDs to type Long, added generic ResultSetMapper, renamed dao package to dal
refactoring to minimize condition hierarchy
added typehandlerchain for resultsetmapper
changed requested ID type from int to long
removed unecessary log statements
added delete method in dao and argument exceptions