First rough working implementation fully complied with requirements.