everything working, still complex