Refactor the clamav module