remove mutability
introduce SecurityContext