Moved error handling to a trait, added hmac service currently WIP