add major function