Initial design complete (except GUI)