1st pass at a better design