better structure - still needs cleanup and refactor