Created new structure. Separated functionality.