1st pass at the major functionality