updated: gems
refactor: some files are renamed to a more correct names
changed: some files are renamed to better names
added: more tests for some happy paths