adding further simplifications, and moving structs into different files