some general ideas