Internal refactoring
New structure