refactored authorizable initialize