big refactor
resolving conflicts