reworked identity, refactoring