add setup script, should be complete, hasn't been tested