Reworked into single file with both classes.