Add turn function
Large refactor; separate tasks into separate modules; use one-to-one ratio for modules to files
Delete executable and ignore for future use