static function init()
 {
     self::$post_types = apply_filters(sprintf('%s_Post_Types_init', Kanban::$instance->settings->basename), self::$post_types);
     add_action('init', array(__CLASS__, 'custom_post_types'), 0);
     // build list of post types, fields and taxonomies
     foreach (Kanban_Post_Types::$post_types as $post_type_slug => $post_type_data) {
         $post_type_key = Kanban_Post_Types::format_post_type($post_type_slug);
         if (!isset(Kanban::$instance->post_type_keys)) {
             Kanban::$instance->post_type_keys = array();
         }
         Kanban::$instance->post_type_keys[$post_type_slug] = $post_type_key;
         foreach ($post_type_data as $key_type => $key_type_data) {
             foreach ($key_type_data as $key_slug => $values) {
                 $variable = sprintf('%s_list', $key_type);
                 if (!isset(Kanban::$instance->{$variable})) {
                     Kanban::$instance->{$variable} = array();
                 }
                 // get variable by reference
                 $array =& Kanban::$instance->{$variable};
                 $array[] = Kanban_Utils::format_key($post_type_slug, $key_slug);
                 if (!is_array($values)) {
                     Kanban::$instance->field_defaults[Kanban_Utils::format_key($post_type_slug, $key_slug)] = $values;
                 }
             }
         }
     }
 }