Feature/code redesign

Done with the feature.