First pass
Initial design implemented