some fix more... idea refactoring grr