wip
refactoring some concepts