Feature/refactor