slight solution restructure