broke up logic and execution into separate files in u8