First pass at generic setup