add first pass at a main entry point