added require securerandom