added updated mast
pulled out components into their own modules