functional - but hideous - lazy loaded project tree