Refactor a bit, implement archive, add shout limit setting