Seperated packaging. Some refactoring.