Abstracted out the shiro stuff and implemented full service API