Completely refactor of packages and class names, and externalized constants