added some much-needed structure