Partial work towards initial implementation