refactor into smaller modules
update
format longer keys