custom major functionality