Fixes in passport plugin

* Refactored and optimized
* Changed mixins and make mixins optional