an ugly solution with no external datasources, yet it works