public static function fire( $event, $params = array() ) {
		
		if ( !array_key_exists( $event, static::$events ) ) {
			return;
		}
		
		$event = static::$events[$event];
		$return = array();
		
		if ( array_key_exists( 'before', $event ) ) {
			$return['before'] = static::call( $event['before'], $params );
		}
		
		if ( array_key_exists( 'callbacks', $event ) ) {
			$return['main'] = static::call( $event['callbacks'], $params );
		}
		
		if ( array_key_exists( 'after', $event ) ) {
			$return['after'] = static::call( $event['after'], $params );
		}
		
		return static::pack( $return );
	}