added main trait