protected function implodeOptions( $method = 'select_option', $default = null )
	{
		$this->args['default'] ?: $this->args['default'] = $default;

		$method = $this->camelCase( $method );

		$method = method_exists( $this, $method )
			? $method
			: 'selectOption';

		$i = 0;

		if( $method === 'singleInput' ) {

			if( !isset( $this->args['options'] ) || empty( $this->args['options'] ))return;

			// hack to make sure unset single checkbox values start at 1 instead of 0
			if( key( $this->args['options'] ) === 0 ) {
				$options = ['1' => $this->args['options'][0]];
				$this->args['options'] = $options;
			}

			return $this->singleInput();
		}

		return array_reduce( array_keys( $this->args['options'] ), function( $carry, $key ) use ( &$i, $method ) {
			return $carry .= $this->$method( $key, $i++ );
		});
	}